﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Engine.Dtd.Schema {
    /// <summary>
    /// Defines the different possible attribute types.
    /// </summary>
    public enum DAttributeType {
        /// <summary>
        /// Attribute type not specified.
        /// </summary>
        Default,
        /// <summary>
        /// The attribute contains text (with no markup).
        /// </summary>
        CData,
        /// <summary>
        /// The attribute contains an entity declared in a DTD.
        /// </summary>
        Entity,
        /// <summary>
        /// The attribute contains a number of entities declared in a DTD.
        /// </summary>
        Entities,
        /// <summary>
        /// The attribute is an id attribute uniquely identified the element it appears on.
        /// </summary>
        Id,
        /// <summary>
        /// The attribute value can be any declared subdocument or data entity name.
        /// </summary>
        IdRef,
        ///<summary>
        /// The attribute value is a list of (space separated) declared subdocument or data entity names.
        /// </summary>
        IdRefs,
        /// <summary>
        /// The attribute value is a SGML Name.
        /// </summary>
        Name,
        /// <summary>
        /// The attribute value is a list of (space separated) SGML Names.
        /// </summary>
        NameList,
        /// <summary>
        /// The attribute value is an XML name token (i.e. contains only name characters, but in this case with digits and other valid name characters accepted as the first character).
        /// </summary>
        NmToken,
        /// <summary>
        /// The attribute value is a list of (space separated) XML NMTokens.
        /// </summary>
        NmTokenList,
        /// <summary>
        /// The attribute value is a number.
        /// </summary>
        Number,
        /// <summary>
        /// The attribute value is a list of (space separated) numbers.
        /// </summary>
        NumberList,
        /// <summary>
        /// The attribute value is a number token (i.e. a name that starts with a number).
        /// </summary>
        NumberToken,
        /// <summary>
        /// The attribute value is a list of number tokens.
        /// </summary>
        NumberTokenList,
        /// <summary>
        /// Attribute value is a member of the bracketed list of notation names that qualifies this reserved name.
        /// </summary>
        Notation,
        /// <summary>
        /// The attribute value is one of a set of allowed names.
        /// </summary>
        Enumeration
        }
    }
